﻿Public Class frmUsuario

    Public modeForm As Integer
    Public frmParent As frmMUsuario
    Public key As String = "5r6t7hh8ui"
    Public fbdRutas As New OpenFileDialog 'FolderBrowserDialog
    Private Sub frmUsuario_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing

        Select Case Me.modeForm
            Case 1 'Nuevo
                frmParent.tsbNuevo.Enabled = True
            Case 2 'Consultar
                frmParent.tsbConsultar.Enabled = True
            Case 3 'Editar
                frmParent.tsbEditar.Enabled = True
        End Select

    End Sub

    Private Sub frmCategoria_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim dstRecord1 As New DataSet
        Dim arrRow1 As Array
        Dim arrRow2 As Array
        Me.btnCancelar.Text = "Cancelar"
        Me.btnGuardar.Visible = True
        dstRecord1.Tables.Add("equipo")
        mdlCRUD.loadRecord(dstRecord1, "equipo", "equipo", Nothing, Nothing)
        If (dstRecord1.Tables("equipo").Rows.Count > 0) Then
            Me.dgvEquipo.RowCount = dstRecord1.Tables("equipo").Rows.Count
            For i = 0 To dstRecord1.Tables("equipo").Rows.Count - 1
                arrRow1 = dstRecord1.Tables("equipo").Rows(i).ItemArray.ToArray
                Me.dgvEquipo.Rows(i).Cells(0).Value = arrRow1(0).ToString
                Me.dgvEquipo.Rows(i).Cells(2).Value = arrRow1(1).ToString
                Me.dgvEquipo.Rows(i).Cells(3).Value = arrRow1(2).ToString
            Next i
        End If
        Select Case Me.modeForm

            Case 1 'Nuevo
                Me.lblEdCodigo.Text = ""
                Me.txtDocumento.Text = ""
                Me.txtCorreo.Text = ""
                Me.txtIdws.Text = ""
                Me.txtUsuario.Text = ""
                Me.txtContra.Text = ""
                Me.txtPnombre.Text = ""
                Me.txtPapellido.Text = ""
                Me.txtSapellido.Text = ""
            Case 2 'Consultar

                'Me.txtCodigo.Text = Me.frmParent.arrConsulta(0)

                If Me.frmParent.arrConsulta(1) <> "" Then

                    Me.cmbTipoUsuario.SelectedValue = Me.frmParent.arrConsulta(1)
                End If

                If Me.frmParent.arrConsulta(1) <> "" Then

                    Me.cmbEspecialidad.SelectedValue = Me.frmParent.arrConsulta(1)
                End If

                Me.txtDocumento.Text = Me.frmParent.arrConsulta(3)
                Me.txtCorreo.Text = Me.frmParent.arrConsulta(4)
                Me.txtIdws.Text = Me.frmParent.arrConsulta(5)
                Me.txtUsuario.Text = Me.frmParent.arrConsulta(6)
                Me.txtContra.Text = Me.frmParent.arrConsulta(7)
                Me.txtPnombre.Text = Me.frmParent.arrConsulta(9)
                Me.txtPapellido.Text = Me.frmParent.arrConsulta(10)
                Me.txtSapellido.Text = Me.frmParent.arrConsulta(11)

                Me.btnCancelar.Text = "Continuar"
                Me.btnGuardar.Visible = False

            Case 3 'Editar
                Dim dstRecord As New DataSet
                Dim strId As String = Me.frmParent.dgvUsuario.Rows(Me.frmParent.dgvUsuario.CurrentRow.Index).Cells(0).Value.ToString

                dstRecord.Tables.Add("Usuario")
                mdlCRUD.loadRecord(dstRecord, "Usuario", "usuario", "usuario_id = '" & strId & "'", "")

                Dim arrRow As Array
                arrRow = dstRecord.Tables("Usuario").Rows(0).ItemArray.ToArray

                Me.lblEdCodigo.Text = arrRow(0).ToString

                If arrRow(1).ToString <> "" Then

                    Me.cmbTipoUsuario.SelectedValue = arrRow(1).ToString
                End If

                If arrRow(1).ToString <> "" Then

                    Me.cmbEspecialidad.SelectedValue = arrRow(2).ToString
                End If

                Me.txtDocumento.Text = arrRow(3).ToString
                Me.txtCorreo.Text = arrRow(4).ToString
                Me.txtIdws.Text = arrRow(5).ToString
                Me.txtUsuario.Text = arrRow(6).ToString
                Me.txtContra.Text = clssEncripto.Decrypt(arrRow(7).ToString, arrRow(3).ToString)
                Me.txtPnombre.Text = arrRow(9).ToString
                Me.txtPapellido.Text = arrRow(10).ToString
                Me.txtSapellido.Text = arrRow(11).ToString
        End Select

    End Sub

    Private Sub btnGuardar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnGuardar.Click

        Select Case Me.modeForm

            Case 1 'Nuevo

                Dim NumReg As Integer = 0
                NumReg = getConsecutivo("usuario", "usuario_id", 5)
                Dim arrCampos() As String = {"usuario_id",
                                             "tipousuario_id",
                                             "especialidadmedica_id",
                                             "usuario_documento",
                                             "usuario_email",
                                             "usuario_idws",
                                             "usuario_login",
                                             "usuario_contra",
                                             "usuario_estado",
                                             "usuario_nombre",
                                             "usuario_apellido1",
                                             "usuario_apellido2"}
                Dim arrValor() As String = {NumReg,
                                            Trim(Me.cmbTipoUsuario.SelectedValue.ToString),
                                            Trim(Me.cmbEspecialidad.SelectedValue.ToString),
                                            Trim(Me.txtDocumento.Text),
                                            Trim(Me.txtCorreo.Text),
                                            Trim(Me.txtIdws.Text),
                                            Trim(Me.txtUsuario.Text),
                                            clssEncripto.Encrypt(Trim(Me.txtContra.Text),
                                            Trim(Me.txtDocumento.Text)),
                                            "1",
                                            Trim(Me.txtPnombre.Text),
                                            Trim(Me.txtPapellido.Text),
                                            Trim(Me.txtSapellido.Text)}

                mdlCRUD.insRecord("usuario", arrCampos, arrValor)
                Dim strCondicion As String = "usuario_id = " & IIf(NumReg <> "", "'" & NumReg & "'", "null")
                mdlCRUD.delRecord("equipousuario", strCondicion)
                For Each cRow As DataGridViewRow In Me.dgvEquipo.Rows
                    If cRow.Cells.Item("checkEquipo").Value = True Then

                        Dim arrCamposRespuesta() As String = {"equipo_id", "usuario_id", "equipousuario_ruta"}
                        Dim arrValorRespuesta() As String = {Trim(cRow.Cells.Item("equipo_codigo").Value.ToString), Trim(NumReg), Trim(cRow.Cells.Item("ruta_archivo").Value.ToString)}

                        mdlCRUD.insRecord("equipousuario", arrCamposRespuesta, arrValorRespuesta)
                    End If
                Next cRow
            Case 2 'Consultar

            Case 3 'Editar

                Dim arrParametro() As String = {"usuario_id = " & IIf(Trim(Me.lblEdCodigo.Text) <> "", "'" & Me.lblEdCodigo.Text & "'", "null"),
                                                "tipousuario_id = " & IIf(Trim(Me.cmbTipoUsuario.SelectedValue.ToString) <> "", "'" & Me.cmbTipoUsuario.SelectedValue.ToString & "'", "null"),
                                                "especialidadmedica_id = " & IIf(Trim(Me.cmbEspecialidad.SelectedValue.ToString) <> "", "'" & Me.cmbEspecialidad.SelectedValue.ToString & "'", "null"),
                                                "usuario_documento = " & IIf(Trim(Me.txtDocumento.Text) <> "", "'" & Me.txtDocumento.Text & "'", "null"),
                                                "usuario_email = " & IIf(Trim(Me.txtCorreo.Text) <> "", "'" & Me.txtCorreo.Text & "'", "null"),
                                                "usuario_idws = " & IIf(Trim(Me.txtIdws.Text) <> "", "'" & Me.txtIdws.Text & "'", "null"),
                                                "usuario_login = " & IIf(Trim(Me.txtUsuario.Text) <> "", "'" & Me.txtUsuario.Text & "'", "null"),
                                                "usuario_contra = " & IIf(clssEncripto.Encrypt(Trim(Me.txtContra.Text), key) <> "", "'" & clssEncripto.Encrypt(Trim(Me.txtContra.Text), Trim(Me.txtDocumento.Text)) & "'", "null"),
                                                "usuario_nombre = " & IIf(Trim(Me.txtPnombre.Text) <> "", "'" & Me.txtPnombre.Text & "'", "null"),
                                                "usuario_apellido1 = " & IIf(Trim(Me.txtPapellido.Text) <> "", "'" & Me.txtPapellido.Text & "'", "null"),
                                                "usuario_apellido2 = " & IIf(Trim(Me.txtSapellido.Text) <> "", "'" & Me.txtSapellido.Text & "'", "null")}

                Dim strCondicion As String = "usuario_id = " & IIf(Me.lblEdCodigo.Text <> "", "'" & Me.lblEdCodigo.Text & "'", "null")

                mdlCRUD.updRecord("usuario", arrParametro, strCondicion)

                mdlCRUD.delRecord("equipousuario", strCondicion)

                For Each cRow As DataGridViewRow In Me.dgvEquipo.Rows
                    If cRow.Cells.Item("checkEquipo").Value = True Then

                        Dim arrCamposRespuesta() As String = {"equipo_id", "usuario_id", "equipousuario_ruta"}
                        Dim arrValorRespuesta() As String = {Trim(cRow.Cells.Item("equipo_codigo").Value.ToString), Trim(Me.lblEdCodigo.Text), Trim(cRow.Cells.Item("ruta_archivo").Value.ToString)}

                        mdlCRUD.insRecord("equipousuario", arrCamposRespuesta, arrValorRespuesta)
                    End If
                Next cRow
        End Select

        If (mdlCRUD.blnFlag = True) Then

            Me.frmParent.refreshList()
            Me.Close()
        End If

    End Sub

    Private Sub btnCancelar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCancelar.Click

        Select Case Me.modeForm
            Case 1 'Nuevo

            Case 2 'Consultar

                'Me.frmParent.arrConsulta(0) = Trim(Me.txtCodigo.Text)

                If Me.cmbTipoUsuario.SelectedIndex <> -1 Then

                    Me.frmParent.arrConsulta(1) = Trim(Me.cmbTipoUsuario.SelectedValue.ToString)
                End If

                If Me.cmbEspecialidad.SelectedIndex <> -1 Then

                    Me.frmParent.arrConsulta(2) = Trim(Me.cmbEspecialidad.SelectedValue.ToString)
                End If

                Me.frmParent.arrConsulta(3) = Trim(Me.txtDocumento.Text)
                Me.frmParent.arrConsulta(4) = Trim(Me.txtCorreo.Text)
                Me.frmParent.arrConsulta(5) = Trim(Me.txtIdws.Text)
                Me.frmParent.arrConsulta(6) = Trim(Me.txtUsuario.Text)
                Me.frmParent.arrConsulta(7) = Trim(Me.txtContra.Text)
                Me.frmParent.refreshList()

            Case 3 'Editar

        End Select


        Me.Close()
    End Sub
    Private Sub dgvEquipo_CellContentClick_1(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dgvEquipo.CellContentClick
        Dim cell As DataGridViewCell = dgvEquipo.CurrentCell

        If Not (TypeOf cell Is DataGridViewCheckBoxCell) Then Return

        Dim row As DataGridViewRow = dgvEquipo.CurrentRow
        Dim blnRepite As Boolean = False

        If Me.fbdRutas.ShowDialog() = DialogResult.OK Then

            If dgvEquipo.Rows.Count > 0 Then
                For a As Integer = 0 To dgvEquipo.Rows.Count - 1
                    If dgvEquipo.Rows(a).Cells(3).Value = Me.fbdRutas.FileName Then
                        blnRepite = True
                        Exit For
                    End If
                Next

                If blnRepite = False Then
                    row.Cells(3).Value = Me.fbdRutas.FileName
                End If
            End If

            If dgvEquipo.CurrentRow.Index = dgvEquipo.Rows.Count - 1 Then
                dgvEquipo.CurrentCell = dgvEquipo.Rows(dgvEquipo.Rows.Count - 1).Cells(3)
            End If
        End If
    End Sub
End Class